TOKEN = {
    'ADD': '+',
    'SUB': '-',
    'MUL': '*',
    'POW': '**',
    'DIV': '/',

    'QST': "?",
    'COL': ":",
    'LCMT': "/*",
    'RCMT': "*/",
    'LINE_CMT': "//",

    'GT': ">",
    'GE': ">=",
    'LT': "<",
    'LE': "<=",
    'EQ': "==",
    'NEQ': "!=",
    'NOT': "!",

    'AND': "&&",
    'OR': "||",
    'DOT': ".",
    'SEMI': ",",
    'COMMA': ";",

    'ASSIGN': "=",

    'VAR': "var",
    'IDENT': "identifier",

    'LPT': "(",
    'RPT': ")",
    'LBR': "{",
    'RBR': "}",
    'LMBR': "[",
    'RMBR': "]",
    'LF': "\n",
}
OPT_TOKEN=['do','if','while','for','function','return','var','let']
END_TOKEN=[',',';','\n',']',')']
CONST_TOKEN=['true','false','null']
LEFT_OPT=['!','-']
OPT_PRIORITY={
    '=':0,
    '!':1,
    '&&':1,
    '||':1,
    '>':4,
    '<':4,
    '>=':4,
    '<=':4,
    '==':4,
    '!=':4,
    '+':5,
    '-':5,
    '**':6,
    '*':10,
    '/':10,
    '.':20,
    '[':20,
    '(':20,
}